package com.example.mysecondprojecct.test.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

/**
 * @author MT
 * @date 2023-10-284
 */
@AllArgsConstructor
@NoArgsConstructor
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class Article implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 博客标题
     */
    private String title;

    /**
     * 博客内容
     */
    private String content;

    /**
     * 博客封面图片
     */
    private String cover;

    /**
     * 博客类型 1:图文 2:视频 3:MarkDown
     */
    private Integer type;

    /**
     * 博客具体分类 例：Vue，SpringBoot
     */
    private Integer classify;

    /**
     * 视频链接
     */
    private String video;

    /**
     * 链接类型 1:URL地址 2:B站地址
     */
    private Integer videoType;

    /**
     * 图片链接
     */
    private String image;

    /**
     * 文章基础信息 例：点赞数量，收藏数量
     */
    private String articleBaseInfo;

    /**
     * 文章状态 -1:用户已删除 0:审核中 1:正常 2:违规
     */
    private Integer articleState;

    /**
     * 喜欢该文章的用户
     */
    private String articleLikeUser;

    /**
     * 收藏该文章的用户
     */
    private String articleCollectUser;

    /**
     * 对谁可见  0:自己可见 1:全部可见 2:部分可见
     */
    private Integer articleView;

    /**
     * 部分可见好友
     */
    private String canViewUser;

    /**
     * 创建人
     */
    private Integer createBy;

    /**
     * 修改人
     */
    private Integer updateBy;

    /**
     * 创建日期
     */
    //插入时自动更新时间
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date createTime;

    /**
     * 修改日期
     */
    //插入或更新时自动更新时间
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date  updateTime;

}